package com.xbongbong.pro.rabbitmq.binders;

import com.xbongbong.pro.rabbitmq.constant.ConsistencySyncBinderConstant;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;
import org.springframework.stereotype.Service;

/**
 *
 * @author 魏荣杰
 * @date 2019/6/10 19:44
 * @since v1.0
 * @version v1.0
 */
@Service("consistencySyncProducerBinder")
public interface ConsistencySyncProducerBinder {
    /**
     * 客户
     */
//    @Input(ConsistencySyncBinderConstant.SYNC_CUSTOMER_INPUT)
//    SubscribableChannel syncCustomerInput();
    @Output(ConsistencySyncBinderConstant.SYNC_CUSTOMER_OUTPUT)
    MessageChannel syncCustomerOutput();
    /**
     * 联系人
     */
//    @Input(ConsistencySyncBinderConstant.SYNC_CONTACT_INPUT)
//    SubscribableChannel syncContactInput();
    @Output(ConsistencySyncBinderConstant.SYNC_CONTACT_OUTPUT)
    MessageChannel syncContactOutput();
    /**
     * 合同
     */
//    @Input(ConsistencySyncBinderConstant.SYNC_CONTRACT_INPUT)
//    SubscribableChannel syncContractInput();
    @Output(ConsistencySyncBinderConstant.SYNC_CONTRACT_OUTPUT)
    MessageChannel syncContractOutput();
    /**
     * 机会
     */
//    @Input(ConsistencySyncBinderConstant.SYNC_OPPORTUNITY_INPUT)
//    SubscribableChannel syncOpportunityInput();
    @Output(ConsistencySyncBinderConstant.SYNC_OPPORTUNITY_OUTPUT)
    MessageChannel syncOpportunityOutput();
    /**
     * 产品
     */
//    @Input(ConsistencySyncBinderConstant.SYNC_PRODUCT_INPUT)
//    SubscribableChannel syncProductInput();
    @Output(ConsistencySyncBinderConstant.SYNC_PRODUCT_OUTPUT)
    MessageChannel syncProductOutput();
    /**
     * 用户
     */
//    @Input(ConsistencySyncBinderConstant.SYNC_USER_INPUT)
//    SubscribableChannel syncUserInput();
    @Output(ConsistencySyncBinderConstant.SYNC_USER_OUTPUT)
    MessageChannel syncUserOutput();

    /**
     * 供应商
     * @return
     */
    @Output(ConsistencySyncBinderConstant.SYNC_SUPPLIER_OUTPUT)
    MessageChannel syncSupplierOutput();

    @Output(ConsistencySyncBinderConstant.SYNC_WAREHOUSE_OUTPUT)
    MessageChannel syncWarehouseOutput();

    @Output(ConsistencySyncBinderConstant.SYNC_QUOTATION_OUTPUT)
    MessageChannel syncQuotationOutput();

    /**
     * 采购合同
     * @return
     */
    @Output(ConsistencySyncBinderConstant.SYNC_PURCHASE_OUTPUT)
    MessageChannel syncPurchaseOutput();
    /**
     *批次流水
     * @return
     */
    @Output(ConsistencySyncBinderConstant.SYNC_BATCH_FLOW_BILL_OUTPUT)
    MessageChannel syncBatchFlowBillOutput();
    /**
     * 序列号查询
     * @return
     */
    @Output(ConsistencySyncBinderConstant.SYNC_SEQ_SEARCH_OUTPUT)
    MessageChannel syncSeqSearchOutput();
    /**
     * 付款计划
     * @return
     */
    @Output(ConsistencySyncBinderConstant.SYNC_PAYMENT_OUTPUT)
    MessageChannel syncPaymentOutput();

    /**
     * 应收款
     * @return
     */
    @Output(ConsistencySyncBinderConstant.SYNC_PAYPLAN_OUTPUT)
    MessageChannel syncPayPlanOutput();

    /**
     * 线索
     */
    @Output(ConsistencySyncBinderConstant.SYNC_CLUE_OUTPUT)
    MessageChannel syncClueOutput();
    /**
     * 市场活动
     */
    @Output(ConsistencySyncBinderConstant.SYNC_MARKET_ACTIVITY_OUTPUT)
    MessageChannel syncMarketActivityOutput();

    /**
     * 竞争对手
     */
    @Output(ConsistencySyncBinderConstant.SYNC_COMPETITOR_OUTPUT)
    MessageChannel syncCompetitorOutput();

    /**
     * 销项发票
     */
    @Output(ConsistencySyncBinderConstant.SYNC_INVOICE_OUTPUT)
    MessageChannel syncInvoiceOutput();

    /**
     * 销售出库单
     */
    @Output(ConsistencySyncBinderConstant.SYNC_CONTRACT_OUTSTOCK_OUTPUT)
    MessageChannel syncContractOutStockOutput();

}
